package han.yang.service.user.service;

import han.yang.common.ResponseVO;
import han.yang.service.user.dao.ImUserDataEntity;
import han.yang.service.user.model.req.DeleteUserReq;
import han.yang.service.user.model.req.GetUserInfoReq;
import han.yang.service.user.model.req.ImportUserReq;
import han.yang.service.user.model.req.ModifyUserInfoReq;
import han.yang.service.user.model.resp.GetUserInfoResp;

/**
 * 用户信息的crud
 * @author yanghan
 * @date 2023/2/11
 */
public interface ImUserService {

    /**
     * 导入用户信息
     * @param req 请求信息
     * @return 返回信息
     */
    ResponseVO<?> importUser(ImportUserReq req);

    /**
     * 获取用户信息
     * @param req 请求信息
     * @return 返回请求的所有信息
     */
    ResponseVO<GetUserInfoResp> getUserInfo(GetUserInfoReq req);

    /**
     * 获取单个用户信息
     * @param userId 用户id
     * @return 返回用户信息
     */
    ResponseVO<ImUserDataEntity> getSingleUserInfo(String userId);

    /**
     * 查询单个用户信息
     * @param userId 用户的id
     * @param appId 对应的appId
     * @return 返回信息
     */
    ResponseVO<ImUserDataEntity> getSingleUserInfo(String userId,Integer appId);

    /**
     * 删除用户信息
     * @param req 请求信息
     * @return 返回信息
     */
    ResponseVO<?> deleteUser(DeleteUserReq req);

    /**
     * 修改用户信息
     * @param req 新的用户信息
     * @return 返回信息
     */
    ResponseVO<?> modifyUserInfo(ModifyUserInfoReq req);
}
